/**
 * Systemprogrammierung
 * Multiplayer-Quiz
 *
 * Client
 *	\author
 *	\file client/fragewechsel.c:
 *	\brief Implementierung des Fragewechsel-Threads */

#include "gui/gui_interface.h"
#include "common/sockets.h"
#include "fragewechsel.h"
#include "main.h"

/** \brief Start des Fragewechsel-Thread
 * 	\param param Standardübergabeparameter */
void* question_thread(void* param) {

	int sock = get_socket();

	//  Initialisiere Semaphor zum Auslösen des Fragewechsel
	sem_init(&question, 0, 0);

	//  Variable für Auslösen von Thread-Ende
	bool quit = false;

	/*  ** ** ** Fragewechsel-Schleife ** ** ** */

	while (quit == false) {

		// Warte auf setzen des Semaphor von Listener-Thread, solange blockiert
		sem_wait(&question);

		// Wartezeit
		sleep(4);

		// Anfrage an Server senden
		if (catch_com_err(send_MSG(sock, QUESTION_REQUEST, 0, NULL)) == COM_ERR) {

			debugPrint("Verbindung zum Server verloren\n");

			quit = true;
		}
	}

	debugPrint("Fragewechsel-Thread wurde beendet");

	// Fragewechsel-Thread beenden
	pthread_exit(NULL);
	return NULL;
}
